home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1478.txt < prev    next >
Text File  |  1994-08-01  |  91KB  |  1,964 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     M. Steenstrup
  8. Request for Comments: 1478                 BBN Systems and Technologies
  9.                                                               June 1993
  10.  
  11.  
  12.             An Architecture for Inter-Domain Policy Routing
  13.  
  14. Status of this Memo
  15.  
  16.    This RFC specifies an IAB standards track protocol for the Internet
  17.    community, and requests discussion and suggestions for improvements.
  18.    Please refer to the current edition of the "IAB Official Protocol
  19.    Standards" for the standardization state and status of this protocol.
  20.    Distribution of this memo is unlimited.
  21.  
  22. Abstract
  23.  
  24.    We present an architecture for inter-domain policy routing (IDPR).
  25.    The objective of IDPR is to construct and maintain routes, between
  26.    source and destination administrative domains, that provide user
  27.    traffic with the requested services within the constraints stipulated
  28.    for the domains transited.  The IDPR architecture is designed to
  29.    accommodate an internetwork containing tens of thousands of
  30.    administrative domains with heterogeneous service requirements and
  31.    restrictions.
  32.  
  33. Contributors
  34.  
  35.    The following people have contributed to the IDPR architecture: Bob
  36.    Braden, Lee Breslau, Ross Callon, Noel Chiappa, Dave Clark, Pat
  37.    Clark, Deborah Estrin, Marianne Lepp, Mike Little, Martha Steenstrup,
  38.    Zaw-Sing Su, Paul Tsuchiya, and Gene Tsudik.  Yakov Rekhter supplied
  39.    many useful comments on a previous draft of this document.
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Steenstrup                                                      [Page 1]
  59.  
  60. RFC 1478                   IDPR Architecture                   June 1993
  61.  
  62.  
  63. Table of Contents
  64.  
  65.    1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 3
  66.    1.1. The Internet Environment. . . . . . . . . . . . . . . . . . . 4
  67.    2. Approaches to Policy Routing. . . . . . . . . . . . . . . . . . 5
  68.    2.1. Policy Route Generation . . . . . . . . . . . . . . . . . . . 5
  69.    2.1.1. Distance Vector Approach. . . . . . . . . . . . . . . . . . 5
  70.    2.1.2. Link State Approach . . . . . . . . . . . . . . . . . . . . 7
  71.    2.2. Routing Information Distribution. . . . . . . . . . . . . . . 8
  72.    2.2.1. Distance Vector Approach. . . . . . . . . . . . . . . . . . 8
  73.    2.2.2. Link State Approach . . . . . . . . . . . . . . . . . . . .10
  74.    2.3. Message Forwarding along Policy Routes. . . . . . . . . . . .10
  75.    2.3.1. Hop-by-Hop Approach . . . . . . . . . . . . . . . . . . . .11
  76.    2.3.1.1. A Clarification . . . . . . . . . . . . . . . . . . . . .11
  77.    2.3.2. Source Specified Approach . . . . . . . . . . . . . . . . .12
  78.    3. The IDPR Architecture . . . . . . . . . . . . . . . . . . . . .13
  79.    3.1. IDPR Functions. . . . . . . . . . . . . . . . . . . . . . . .13
  80.    3.2. IDPR Entities . . . . . . . . . . . . . . . . . . . . . . . .13
  81.    3.2.1. Path Agents . . . . . . . . . . . . . . . . . . . . . . . .16
  82.    3.2.2. IDPR Servers. . . . . . . . . . . . . . . . . . . . . . . .17
  83.    3.2.3. Entity Identifiers. . . . . . . . . . . . . . . . . . . . .19
  84.    3.3. Security and Reliability. . . . . . . . . . . . . . . . . . .20
  85.    3.3.1. Retransmissions and Acknowledgements. . . . . . . . . . . .20
  86.    3.3.2. Integrity Checks. . . . . . . . . . . . . . . . . . . . . .21
  87.    3.3.3. Source Authentication . . . . . . . . . . . . . . . . . . .21
  88.    3.3.4. Timestamps. . . . . . . . . . . . . . . . . . . . . . . . .21
  89.    3.4. An Example of IDPR Operation. . . . . . . . . . . . . . . . .22
  90.    4. Accommodating a Large, Heterogeneous Internet . . . . . . . . .25
  91.    4.1. Domain Level Routing. . . . . . . . . . . . . . . . . . . . .25
  92.    4.2. Route Generation. . . . . . . . . . . . . . . . . . . . . . .27
  93.    4.3. Super Domains . . . . . . . . . . . . . . . . . . . . . . . .29
  94.    4.4. Domain Communities. . . . . . . . . . . . . . . . . . . . . .30
  95.    4.5. Robustness in the Presence of Failures. . . . . . . . . . . .31
  96.    4.5.1. Path Repair . . . . . . . . . . . . . . . . . . . . . . . .31
  97.    4.5.2. Partitions. . . . . . . . . . . . . . . . . . . . . . . . .33
  98.    5. References. . . . . . . . . . . . . . . . . . . . . . . . . . .XX
  99.    5. Security Considerations . . . . . . . . . . . . . . . . . . . .34
  100.    6. Author's Address  . . . . . . . . . . . . . . . . . . . . . . .34
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Steenstrup                                                      [Page 2]
  115.  
  116. RFC 1478                   IDPR Architecture                   June 1993
  117.  
  118.  
  119. 1.  Introduction
  120.  
  121.    As data communications technologies evolve and user populations grow,
  122.    the demand for internetworking increases.  Internetworks usually
  123.    proliferate through interconnection of autonomous, heterogeneous
  124.    networks administered by separate authorities.  We use the term
  125.    "administrative domain" (AD) to refer to any collection of contiguous
  126.    networks, gateways, links, and hosts governed by a single
  127.    administrative authority who selects the intra-domain routing
  128.    procedures and addressing schemes, specifies service restrictions for
  129.    transit traffic, and defines service requirements for locally-
  130.    generated traffic.
  131.  
  132.    Interconnection of administrative domains can broaden the range of
  133.    services available in an internetwork.  Hence, traffic with special
  134.    service requirements is more likely to receive the service requested.
  135.    However, administrators of domains offering special transit services
  136.    are more likely to establish stringent access restrictions, in order
  137.    to maintain control over the use of their domains' resources.
  138.  
  139.    An internetwork composed of many domains with diverse service
  140.    requirements and restrictions requires "policy routing" to transport
  141.    traffic between source and destination.  Policy routing constitutes
  142.    route generation and message forwarding procedures for producing and
  143.    using routes that simultaneously satisfy user service requirements
  144.    and respect transit domain service restrictions.
  145.  
  146.    With policy routing, each domain administrator sets "transit
  147.    policies" that dictate how and by whom the resources within its
  148.    domain should be used.  Transit policies are usually public, and they
  149.    specify offered services comprising:
  150.  
  151.    - Access restrictions: e.g., applied to traffic to or from certain
  152.      domains or classes of users.
  153.  
  154.    - Quality: e.g., delay, throughput, or error characteristics.
  155.  
  156.    - Monetary cost: e.g., charge per byte, message, or unit time.
  157.  
  158.    Each domain administrator also sets "source policies" for traffic
  159.    originating within its domain.  Source policies are usually private,
  160.    and they specify requested services comprising:
  161.  
  162.    - Access restrictions: e.g., domains to favor or avoid in routes.
  163.  
  164.    - Quality: e.g., acceptable delay, throughput, or reliability.
  165.  
  166.    - Monetary cost: e.g., acceptable session cost.
  167.  
  168.  
  169.  
  170. Steenstrup                                                      [Page 3]
  171.  
  172. RFC 1478                   IDPR Architecture                   June 1993
  173.  
  174.  
  175.    In this document, we describe an architecture for inter-domain policy
  176.    routing (IDPR), and we provide a set of functions which can form the
  177.    basis for a suite of IDPR protocols and procedures.
  178.  
  179. 1.1.  The Internet Environment
  180.  
  181.    The Internet currently comprises over 7000 operational networks and
  182.    over 10,000 registered networks.  In fact, for the last several
  183.    years, the number of constituent networks has approximately doubled
  184.    annually.  Although we do not expect the Internet to sustain this
  185.    growth rate, we must provide an architecture for IDPR that can
  186.    accommodate the Internet five to ten years in the future.  According
  187.    to the functional requirements for inter-autonomous system (i.e.,
  188.    inter-domain) routing set forth in [6], the IDPR architecture and
  189.    protocols must be able to handle O(100,000) networks distributed over
  190.    O(10,000) domains.
  191.  
  192.    Internet connectivity has increased along with the number of
  193.    component networks.  In the early 1980s, the Internet was purely
  194.    hierarchical, with the ARPANET as the single backbone.  The current
  195.    Internet possesses a semblance of a hierarchy in the collection of
  196.    backbone, regional, metropolitan, and campus domains that compose it.
  197.    However, technological, economical, and political incentives have
  198.    prompted the introduction of inter-domain links outside of those in
  199.    the strict hierarchy.  Hence, the Internet has the properties of both
  200.    hierarchical and mesh connectivity.
  201.  
  202.    We expect that the Internet will evolve in the following way.  Over
  203.    the next five years, the Internet will grow to contain O(10) backbone
  204.    domains, most providing connectivity between many source and
  205.    destination domains and offering a wide range of qualities of
  206.    service, for a fee.  Most domains will connect directly or indirectly
  207.    to at least one Internet backbone domain, in order to communicate
  208.    with other domains.  In addition, some domains may install direct
  209.    links to their most favored destinations.  Domains at the lower
  210.    levels of the hierarchy will provide some transit service, limited to
  211.    traffic between selected sources and destinations.  However, the
  212.    majority of Internet domains will be "stubs", that is, domains that
  213.    do not provide any transit service for other domains.
  214.  
  215.    The bulk of Internet traffic will be generated by hosts in these stub
  216.    domains, and thus, the applications running in these hosts will
  217.    determine the traffic service requirements.  We expect application
  218.    diversity encompassing electronic mail, desktop videoconferencing,
  219.    scientific visualization, and distributed simulation, to list a few.
  220.    Many of these applications have strict requirements on loss, delay,
  221.    and throughput.
  222.  
  223.  
  224.  
  225.  
  226. Steenstrup                                                      [Page 4]
  227.  
  228. RFC 1478                   IDPR Architecture                   June 1993
  229.  
  230.  
  231.    Ensuring that Internet traffic traverses routes that provide the
  232.    required services without violating domain usage restrictions will be
  233.    the task of policy routing in the Internet in the next several years.
  234.    Refer to [1]-[10] for more information on the role of policy routing
  235.    in the Internet.
  236.  
  237. 2.  Approaches to Policy Routing
  238.  
  239.    In this section, we provide an assessment of candidate approaches to
  240.    policy routing, concentrating on the "distance vector" and "link
  241.    state" alternatives for routing information distribution and route
  242.    generation and on the "hop-by-hop" and "source specified"
  243.    alternatives for data message forwarding.  The IDPR architecture
  244.    supports link state routing information distribution and route
  245.    generation in conjunction with source specified message forwarding.
  246.    We justify these choices for IDPR below.
  247.  
  248. 2.1.  Policy Route Generation
  249.  
  250.    We present policy route generation from the distance vector
  251.    perspective and from the link state perspective.
  252.  
  253. 2.1.1.  Distance Vector Approach
  254.  
  255.    Distance vector route generation distributes the computation of a
  256.    single route among multiple routing entities along the route.  Hence,
  257.    distance vector route generation is potentially susceptible to the
  258.    problems of routing loop formation and slow adaptation to changes in
  259.    an internetwork.  However, there exist several techniques that can be
  260.    applied during distance vector route generation to reduce the
  261.    severity of, or even eliminate, these problems.  For information on a
  262.    loop-free, quickly adapting distance vector routing procedure,
  263.    consult [13] and [14].
  264.  
  265.    During policy route generation, each recipient of a distance vector
  266.    message assesses the acceptability of the associated route and
  267.    determines the set of neighboring domains to which the message should
  268.    be propagated.  In the context of policy routing, both of the
  269.    following conditions are necessary for route acceptability:
  270.  
  271.    - The route is consistent with at least one transit policy for each
  272.      domain, not including the current routing entity's domain, contained
  273.      in the route.  To enable each recipient of a distance vector message
  274.      to verify consistency of the associated route with the transit
  275.      policies of all constituent domains, each routing entity should
  276.      include its domain's identity and transit policies in each
  277.      acceptable distance vector message it propagates.
  278.  
  279.  
  280.  
  281.  
  282. Steenstrup                                                      [Page 5]
  283.  
  284. RFC 1478                   IDPR Architecture                   June 1993
  285.  
  286.  
  287.    - The route is consistent with at least one source policy for at least
  288.      one domain in the Internet.  To enable each recipient of a distance
  289.      vector message to verify consistency of the associated route with
  290.      the source policies of particular domains, each domain must provide
  291.      other domains with access to its source policies.
  292.  
  293.    In addition, at least one of the following conditions is necessary
  294.    for route acceptability:
  295.  
  296.    - The route is consistent with at least one of the transit policies
  297.      for the current routing entity's domain.  In this case, the routing
  298.      entity accepts the distance vector message and then proceeds to
  299.      compare the associated route with its other routes to the
  300.      destinations listed in the message.  If the routing entity decides
  301.      that the new route is preferable, it updates the distance vector
  302.      message with its domain's identity and transit policies and then
  303.      propagates the message to the appropriate neighboring domains.  We
  304.      discuss distance vector message distribution in more detail in
  305.      section 2.2.1.
  306.  
  307.    The route is consistent with at least one of the source policies for
  308.    the current routing entity's domain.  In this case, the routing
  309.    entity need not propagate the distance vector message but does retain
  310.    the associated route for use by traffic from local hosts, bound for
  311.    the destinations listed in the message.
  312.  
  313.    The routing entity discards any distance vector message that does not
  314.    meet these necessary conditions.
  315.  
  316.    With distance vector policy route generation, a routing entity may
  317.    select and store multiple routes of different characteristics, such
  318.    as qualities of service, to a single destination.  A routing entity
  319.    uses the quality of service information, provided in the transit
  320.    policies contained in accepted distance vector messages, to
  321.    discriminate between routes based on quality of service.  Moreover, a
  322.    routing entity may select routes that are specific to certain source
  323.    domains, provided that the routing entity has access to the source
  324.    policies of those domains.
  325.  
  326.    In the distance vector context, the flexibility of policy route
  327.    generation afforded by accounting for other domains' transit and
  328.    source policies in route selection has the following disadvantages:
  329.  
  330.    - Each recipient of a distance vector message must bear the cost of
  331.      verifying the consistency of the associated route with the
  332.      constituent domains' transit policies.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Steenstrup                                                      [Page 6]
  339.  
  340. RFC 1478                   IDPR Architecture                   June 1993
  341.  
  342.  
  343.    - Source policies must be made public.  Thus, a domain must divulge
  344.      potentially private information.
  345.  
  346.    - Each recipient of a distance vector message must bear the
  347.      potentially high costs of selecting routes for arbitrary source
  348.      domains.  In particular, a routing entity must store the source
  349.      policies of other domains, account for these source policies during
  350.      route selection, and maintain source-specific forwarding
  351.      information.  Moreover, there must be a mechanism for distributing
  352.      source policy information among domains.  Depending on the mechanism
  353.      selected, distribution of source policies may add to the costs paid
  354.      by each routing entity in supporting source-specific routing.
  355.  
  356.    We note, however, that failure to distribute source policies to all
  357.    domains may have unfortunate consequences.  In the worst case, a
  358.    domain may not learn of any acceptable routes to a given destination,
  359.    even though acceptable routes do exist.  For example, suppose that AD
  360.    V is connected to AD W and that AD W can reach AD Z through either AD
  361.    X or AD Y.  Suppose also that AD~W, as a recipient of distance vector
  362.    messages originating in AD Z, prefers the route through AD Y to the
  363.    route through AD X.  Furthermore, suppose that AD W has no knowledge
  364.    of AD V's source policy precluding traffic from traversing AD Y.
  365.    Hence, AD W distributes to AD V the distance vector message
  366.    containing the route WYZ but not the distance vector message
  367.    containing the route WXZ.  AD V is thus left with no known route to
  368.    AD Z, although a viable route traversing AD W and AD X does exist.
  369.  
  370. 2.1.2.  Link State Approach
  371.  
  372.    Link state route generation permits concentration of the computation
  373.    of a single route within a single routing entity at the source of the
  374.    route.  In the policy routing context, entities within a domain
  375.    generate link state messages containing information about the
  376.    originating domain, including the set of transit policies that apply
  377.    and the connectivity to adjacent domains, and they distribute these
  378.    messages to neighboring domains.  Each recipient of a link state
  379.    message stores the routing information for anticipated policy route
  380.    generation and also distributes it to neighboring domains.  Based on
  381.    the set of link state messages collected from other domains and on
  382.    its domain's source and transit policies, a routing entity constructs
  383.    and selects policy routes from its domain to other domains in the
  384.    Internet.
  385.  
  386.    We have selected link state policy route generation for IDPR for the
  387.    following reasons:
  388.  
  389.    - Each domain has complete control over policy route generation from
  390.      the perspective of itself as source.
  391.  
  392.  
  393.  
  394. Steenstrup                                                      [Page 7]
  395.  
  396. RFC 1478                   IDPR Architecture                   June 1993
  397.  
  398.  
  399.    - The cost of computing a route is completely contained within the
  400.      source domain.  Hence, routing entities in other domains need not
  401.      bear the cost of generating policy routes that their domains' local
  402.      hosts may never use.
  403.  
  404.    - Source policies may be kept private and hence need not be
  405.      distributed.  Thus, there are no memory, processing, or transmission
  406.      bandwidth costs incurred for distributing and storing source
  407.      policies.
  408.  
  409. 2.2.  Routing Information Distribution
  410.  
  411.    A domain's routing information and the set of domains to which that
  412.    routing information is distributed each influence the set of generable
  413.    policy routes that include the given domain.  In particular, a domain
  414.    administrator may promote the generation of routes that obey its
  415.    domain's transit policies by ensuring that its domain's routing
  416.    information:
  417.  
  418.    - Includes resource access restrictions.
  419.  
  420.    - Is distributed only to those domains that are permitted to use these
  421.      resources.
  422.  
  423.    Both of these mechanisms, distributing restrictions with and
  424.    restricting distribution of a domain's routing information, can be
  425.    applied in both the distance vector and link state contexts.
  426.  
  427. 2.2.1.  Distance Vector Approach
  428.  
  429.    A routing entity may distribute its domain's resource access
  430.    restrictions by including the appropriate transit policy information
  431.    in each distance vector it accepts and propagates.  Also, the routing
  432.    entity may restrict distribution of an accepted distance vector
  433.    message by limiting the set of neighboring domains to which it
  434.    propagates the message.  In fact, restricting distribution of routing
  435.    information is inherent in the distance vector approach, as a routing
  436.    entity propagates only the preferred routes among all the distance
  437.    vector messages that it accepts.
  438.  
  439.    Although restricting distribution of distance vector messages is
  440.    easy, coordinating restricted distribution among domains requires
  441.    each domain to know other domains' distribution restrictions.  Each
  442.    domain may have a set of distribution restrictions that apply to all
  443.    distance vector messages generated by that domain as well as sets of
  444.    distribution restrictions that apply to distance vector messages
  445.    generated by other domains.
  446.  
  447.  
  448.  
  449.  
  450. Steenstrup                                                      [Page 8]
  451.  
  452. RFC 1478                   IDPR Architecture                   June 1993
  453.  
  454.  
  455.    As a distance vector message propagates among domains, each routing
  456.    entity should exercise the distribution restrictions associated with
  457.    each domain constituting the route thus far constructed.  In
  458.    particular, a routing entity should send an accepted distance vector
  459.    message to a given neighbor, only if distribution of that message to
  460.    that neighbor is not precluded by any domain contained in the route.
  461.  
  462.    To enable a routing entity to exercise these distribution
  463.    restrictions, each domain must permit other domains access to its
  464.    routing information distribution restrictions.  However, we expect
  465.    that domains may prefer to keep distribution restrictions, like
  466.    source policies, private.  There are at least two ways to make a
  467.    domain's routing information distribution restrictions generally
  468.    available to other domains:
  469.  
  470.    - Prior to propagation of an accepted distance vector message, a
  471.      routing entity includes in the message its domain's distribution
  472.      restrictions (all or only those to that apply to the given message).
  473.      This method requires no additional protocol for disseminating the
  474.      distribution restrictions, but it may significantly increase the
  475.      size of each distance vector message.
  476.  
  477.    - Each domain independently disseminates its distribution restrictions
  478.      to all other domains, so that each domain will be able to exercise
  479.      all other domains' distribution restrictions.  This method requires
  480.      an additional protocol for disseminating the distribution
  481.      restrictions, and it may require a significant amount of memory at
  482.      each routing entity for storing all domains' distribution
  483.      restrictions.
  484.  
  485.    We note that a domain administrator may describe the optimal
  486.    distribution pattern of distance vector messages originating in its
  487.    domain, as a directed graph rooted at its domain.  Furthermore, if
  488.    all domains in the directed graph honor the directionality and if the
  489.    graph is also acyclic, no routing loops may form, because no two
  490.    domains are able to exchange distance vector messages pertaining to
  491.    the same destination.  However, an acyclic graph also means that some
  492.    domains may be unable to discover alternate paths when connectivity
  493.    between adjacent domains fails, as we show below.
  494.  
  495.    We reconsider the example from section 2.1.1.  Suppose that the
  496.    distance vector distribution graph for AD Z is such that all distance
  497.    vectors originating in AD Z flow toward AD V.  In particular,
  498.    distance vectors from AD Z enter AD W from AD X and AD Y and leave AD
  499.    W for AD V.  Now, suppose that the link between the AD Z and AD X
  500.    breaks.  AD X no longer has knowledge of any viable route to AD Z,
  501.    although such a route exists through AD W.  To ensure discovery of
  502.    alternate routes to AD Z during connectivity failures, the distance
  503.  
  504.  
  505.  
  506. Steenstrup                                                      [Page 9]
  507.  
  508. RFC 1478                   IDPR Architecture                   June 1993
  509.  
  510.  
  511.    vector distribution graph for AD Z must contain bidirectional links
  512.    between AD W and AD X and between AD W and AD Y.
  513.  
  514. 2.2.2.  Link State Approach
  515.  
  516.    With link state routing information distribution, all recipients of a
  517.    domain's link state message gain knowledge of that domain's transit
  518.    policies and hence service restrictions.  For reasons of efficiency
  519.    or privacy, a domain may also restrict the set of domains to which
  520.    its link state messages should be distributed.  Thus, a domain has
  521.    complete control over distributing restrictions with and restricting
  522.    distribution of its routing information.
  523.  
  524.    A domain's link state messages automatically travel to all other
  525.    domains if no distribution restrictions are imposed.  Moreover, to
  526.    ensure that distribution restrictions, when imposed, are applied, the
  527.    domain may use source specified forwarding of its link state
  528.    messages, such that the messages are distributed and interpreted only
  529.    by the destination domains for which they were intended.  Thus, only
  530.    those domains receive the given domain's link state messages and
  531.    hence gain knowledge of that domain's service offerings.
  532.  
  533.    We have selected link state routing information distribution for IDPR
  534.    for the following reasons:
  535.  
  536.    - A domain has complete control over the distribution of its own
  537.      routing information.
  538.  
  539.    - Routing information distribution restrictions may be kept private
  540.      and hence need not be distributed.  Thus, there are no memory,
  541.      processing, or transmission bandwidth costs incurred for
  542.      distributing and storing distribution restrictions.
  543.  
  544. 2.3.  Message Forwarding along Policy Routes
  545.  
  546.    To transport data messages along a selected policy route, a routing
  547.    entity may use either hop-by-hop or source specified message
  548.    forwarding.
  549.  
  550. 2.3.1.  Hop-by-Hop Approach
  551.  
  552.    With hop-by-hop message forwarding, each routing entity makes an
  553.    independent forwarding decision based on a message's source,
  554.    destination, and requested services and on information contained in
  555.    the entity's forwarding information database.  Hop-by-hop message
  556.    forwarding follows a source-selected policy route only if all routing
  557.    entities along the route have consistent routing information and make
  558.    consistent use of this information when generating and selecting
  559.  
  560.  
  561.  
  562. Steenstrup                                                     [Page 10]
  563.  
  564. RFC 1478                   IDPR Architecture                   June 1993
  565.  
  566.  
  567.    policy routes and when establishing forwarding information.  In
  568.    particular, all domains along the route must have consistent
  569.    information about the source domain's source policies and consistent,
  570.    but not necessarily complete, information about transit policies and
  571.    domain adjacencies within the Internet.  In general, this implies
  572.    that each domain should have knowledge of all other domains' source
  573.    policies, transit policies, and domain adjacencies.
  574.  
  575.    When hop-by-hop message forwarding is applied in the presence of
  576.    inconsistent routing information, the actual route traversed by data
  577.    messages not only may differ from the route selected by the source
  578.    but also may contain loops.  In the policy routing context, private
  579.    source policies and restricted distribution of routing information
  580.    are two potential causes of routing information inconsistencies among
  581.    domains.  Moreover, we expect routing information inconsistencies
  582.    among domains in a large Internet, independent of whether the
  583.    Internet supports policy routing, as some domains may not want or may
  584.    not be able to store routing information from the entire Internet.
  585.  
  586. 2.3.1.1.  A Clarification
  587.  
  588.    In a previous draft, we presented the following example which results
  589.    in persistent routing loops, when hop-by-hop message forwarding is
  590.    used in conjunction with distance vector routing information
  591.    distribution and route selection.  Consider the sequence of events:
  592.  
  593.    - AD X receives a distance vector message containing a route to AD Z,
  594.      which does not include AD Y.  AD X selects and distributes this route
  595.      as its primary route to AD Z.
  596.  
  597.    - AD Y receives a distance vector message containing a route to AD Z,
  598.      which does not include AD X.  AD Y selects and distributes this route
  599.      as its primary route to AD Z.
  600.  
  601.    - AD X eventually receives the distance vector message containing the
  602.      route to AD Z, which includes AD Y but not AD X.  AD X prefers this
  603.      route over its previous route to AD Z and selects this new route as
  604.      its primary route to AD Z.
  605.  
  606.    - AD Y eventually receives the distance vector message containing the
  607.      route to AD Z, which includes AD X but not AD Y.  AD Y prefers this
  608.      route over its previous route to AD Z and selects this new route as
  609.      its primary route to AD Z.
  610.  
  611.    Thus, AD X selects a route to AD Z that includes AD Y, and AD Y
  612.    selects a route to AD Z that includes AD X.
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Steenstrup                                                     [Page 11]
  619.  
  620. RFC 1478                   IDPR Architecture                   June 1993
  621.  
  622.  
  623.    Suppose that all domains along the route selected by AD X, except for
  624.    AD Y, make forwarding decisions consistent with AD X's route, and
  625.    that all domains along the route selected by AD Y, except for AD X,
  626.    make forwarding decisions consistent with AD Y's route.  Neither AD
  627.    X's selected route nor AD Y's selected route contains a loop.
  628.    Nevertheless, data messages destined for AD Z and forwarded to either
  629.    AD X or AD Y will continue to circulate between AD X and AD Y, until
  630.    there is a route change.  The reason is that AD X and AD Y have
  631.    conflicting notions of the route to AD Z, with each domain existing
  632.    as a hop on the other's route.
  633.  
  634.    We note that while BGP-3 [8] is susceptible to such routing loops,
  635.    BGP-4 [9] is not.  We thank Tony Li and Yakov Rekhter for their help
  636.    in clarifying this difference between BGP-3 and BGP-4.
  637.  
  638. 2.3.2.  Source Specified Approach
  639.  
  640.    With source specified message forwarding, the source domain dictates
  641.    the data message forwarding decisions to the routing entities in each
  642.    intermediate domain, which then forward data messages according to
  643.    the source specification.  Thus, the source domain ensures that any
  644.    data message originating within it follows its selected routes.
  645.  
  646.    For source specified message forwarding, each data message must carry
  647.    either an entire source specified route or a path identifier.
  648.    Including the complete route in each data message incurs a per
  649.    message transmission and processing cost for transporting and
  650.    interpreting the source route.  Using path identifiers does not incur
  651.    these costs.  However, to use path identifiers, the source domain
  652.    must initiate, prior to data message forwarding, a path setup
  653.    procedure that forms an association between the path identifier and
  654.    the next hop in the routing entities in each domain along the path.
  655.    Thus, path setup may impose an initial delay before data message
  656.    forwarding can begin.
  657.  
  658.    We have selected source specified message forwarding for IDPR data
  659.    messages for the following reasons:
  660.  
  661.    - Source specified message forwarding respects the source policies of
  662.      the source domain, regardless of whether intermediate domains along
  663.      the route have knowledge of these source policies.
  664.  
  665.    - Source specified message forwarding is loop-free, regardless of
  666.      whether the all domains along the route maintain consistent routing
  667.      information.
  668.  
  669.    Also, we have chosen path identifiers over complete routes, to affect
  670.    source specified message forwarding, because of the reduced
  671.  
  672.  
  673.  
  674. Steenstrup                                                     [Page 12]
  675.  
  676. RFC 1478                   IDPR Architecture                   June 1993
  677.  
  678.  
  679.    transmission and processing cost per data message.
  680.  
  681. 3.  The IDPR Architecture
  682.  
  683.    We now present the architecture for IDPR, including a description of
  684.    the IDPR functions, the entities that perform these functions, and
  685.    the features of IDPR that aid in accommodating Internet growth.
  686.  
  687. 3.1.  IDPR Functions
  688.  
  689.    Inter-domain policy routing comprises the following functions:
  690.  
  691.    - Collecting and distributing routing information including domain
  692.      transit policies and inter-domain connectivity.
  693.  
  694.    - Generating and selecting policy routes based on the routing
  695.      information distributed and on the source policies configured or
  696.      requested.
  697.  
  698.    - Setting up paths across the Internet using the policy routes
  699.      generated.
  700.  
  701.    - Forwarding messages across and between domains along the established
  702.      paths.
  703.  
  704.    - Maintaining databases of routing information, inter-domain policy
  705.      routes, forwarding information, and configuration information.
  706.  
  707. 3.2.  IDPR Entities
  708.  
  709.    From the perspective of IDPR, the Internet comprises administrative
  710.    domains connected by "virtual gateways" (see below), which are in
  711.    turn connected by intra-domain routes supporting the transit policies
  712.    configured by the domain administrators.  Each domain administrator
  713.    defines the set of transit policies that apply across its domain and
  714.    the virtual gateways between which each transit policy applies.
  715.    Several different transit policies may be configured for the intra-
  716.    domain routes connecting a pair of virtual gateways.  Moreover, a
  717.    transit policy between two virtual gateways may be directional.  That
  718.    is, the transit policy may apply to traffic flowing in one direction,
  719.    between the virtual gateways, but not in the other direction.
  720.  
  721.    Virtual gateways (VGs) are the only connecting points recognized by
  722.    IDPR between adjacent administrative domains.  Each virtual gateway
  723.    is actually a collection of directly-connected "policy gateways" (see
  724.    below) in two adjacent domains, whose existence has been sanctioned
  725.    by the administrators of both domains.  Domain administrators may
  726.    agree to establish more than one virtual gateway between their
  727.  
  728.  
  729.  
  730. Steenstrup                                                     [Page 13]
  731.  
  732. RFC 1478                   IDPR Architecture                   June 1993
  733.  
  734.  
  735.    domains.  For example, if two domains are to be connected at two
  736.    geographically distant locations, the domain administrators may wish
  737.    to preserve these connecting points as distinct at the inter-domain
  738.    level, by establishing two distinct virtual gateways.
  739.  
  740.    Policy gateways (PGs) are the physical gateways within a virtual
  741.    gateway.  Each policy gateway forwards transit traffic according to
  742.    the service restrictions stipulated by its domain's transit policies
  743.    applicable to its virtual gateway.  A single policy gateway may
  744.    belong to multiple virtual gateways.  Within a domain, two policy
  745.    gateways are "neighbors" if they are in different virtual gateways.
  746.    Within a virtual gateway, two policy gateways are "peers" if they are
  747.    in the same domain and are "adjacent" if they are in different
  748.    domains.  Peer policy gateways must be able to communicate over
  749.    intra-domain routes that support the transit policies that apply to
  750.    their virtual gateways.  Adjacent policy gateways are "directly
  751.    connected" if they are the only Internet addressable entities
  752.    attached to the connecting medium.  Note that this definition implies
  753.    that not only point-to-point links but also multiaccess networks may
  754.    serve as direct connections between adjacent policy gateways.
  755.  
  756.    Combining multiple policy gateways into a single virtual gateway
  757.    affords three advantages:
  758.  
  759.    - A reduction in the amount of IDPR routing information that must be
  760.      distributed and maintained throughout the Internet.
  761.  
  762.    - An increase in the reliability of IDPR routes through redundancy of
  763.      physical connections between domains.
  764.  
  765.    - An opportunity for load sharing of IDPR traffic among policy
  766.      gateways.
  767.  
  768.    Several different entities are responsible for performing the IDPR
  769.    functions:
  770.  
  771.    - Policy gateways collect and distribute routing information,
  772.      participate in path setup, forward data messages along established
  773.      paths, and maintain forwarding information databases.
  774.  
  775.    - "Path agents" act on behalf of hosts to select policy routes, to set
  776.      up and manage paths, and to maintain forwarding information
  777.      databases.
  778.  
  779.    - Special-purpose servers maintain all other IDPR databases as
  780.      follows:
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Steenstrup                                                     [Page 14]
  787.  
  788. RFC 1478                   IDPR Architecture                   June 1993
  789.  
  790.  
  791.       o Each "route server" is responsible for both its database of
  792.         routing information, including domain connectivity and transit
  793.         policy information, and its database of policy routes.  Also,
  794.         each route server generates policy routes on behalf of its
  795.         domain, using entries from its routing information database
  796.         and source policy information supplied through configuration
  797.         or obtained directly from the path agents.
  798.  
  799.       o  Each "mapping server" is responsible for its database of
  800.          mappings that resolve Internet names and addresses to
  801.          administrative domains.
  802.  
  803.       o  Each "configuration server" is responsible for its database of
  804.          configured information that applies to policy gateways, path
  805.          agents, and route servers in the given administrative domain.
  806.          The configuration information for a given domain includes
  807.          source and transit policies and mappings between local IDPR
  808.          entities and their Internet addresses.
  809.  
  810.    To maximize IDPR's manageability, one should embed all of IDPR's
  811.    required functionality within the IDPR protocols and procedures.
  812.    However, to minimize duplication of implementation effort, one should
  813.    take advantage of required functionality already provided by
  814.    mechanisms external to IDPR.  Two such cases are the mapping server
  815.    functionality and the configuration server functionality.  The
  816.    functions of the mapping server can be integrated into an existing
  817.    name service such as the DNS, and the functions of the configuration
  818.    server can be integrated into the domain's existing network
  819.    management system.
  820.  
  821.    Within the Internet, only policy gateways, path agents, and route
  822.    servers must be able to generate, recognize, and process IDPR
  823.    messages.  The existence of IDPR is invisible to all other gateways
  824.    and hosts.  Mapping servers and configuration servers perform
  825.    necessary but ancillary functions for IDPR, and they are not required
  826.    to execute the IDPR protocols.
  827.  
  828. 3.2.1.  Path Agents
  829.  
  830.    Any Internet host can reap the benefits of IDPR, as long as there
  831.    exists a path agent configured to act on its behalf and a means by
  832.    which the host's messages can reach that path agent.  Path agents
  833.    select and set up policy routes for hosts, accounting for service
  834.    requirements.  To obtain a host's service requirements, a path agent
  835.    may either consult its configured IDPR source policy information or
  836.    extract service requirements directly from the host's data messages,
  837.    provided such information is available in these data messages.
  838.  
  839.  
  840.  
  841.  
  842. Steenstrup                                                     [Page 15]
  843.  
  844. RFC 1478                   IDPR Architecture                   June 1993
  845.  
  846.  
  847.    Separating the path agent functions from the hosts means that host
  848.    software need not be modified to support IDPR.  Moreover, it means
  849.    that a path agent can aggregate onto a single policy route traffic
  850.    from several different hosts, as long as the source domains,
  851.    destination domains, and service requirements are the same for all of
  852.    these host traffic flows.  Policy gateways are the natural choice for
  853.    the entities that perform the path agent functions on behalf of
  854.    hosts, as policy gateways are the only inter-domain connecting points
  855.    recognized by IDPR.
  856.  
  857.    Each domain administrator determines the set of hosts that its
  858.    domain's path agents will handle.  We expect that a domain
  859.    administrator will normally configure path agents in its domain to
  860.    act on behalf of its domain's hosts only.  However, a path agent can
  861.    be configured to act on behalf of any Internet host.  This
  862.    flexibility permits one domain to act as an IDPR "proxy" for another
  863.    domain.  For example, a small stub domain may wish to have policy
  864.    routing available to a few of its hosts but may not want to set up
  865.    its domain to support all of the IDPR functionality.  The
  866.    administrator of the stub domain can negotiate the proxy function
  867.    with the administrator of another domain, who agrees that its domain
  868.    will provide policy routes on behalf of the stub domain's hosts.
  869.  
  870.    If a source domain supports IDPR and limits all domain egress points
  871.    to policy gateways, then each message generated by a host in that
  872.    source domain and destined for a host in another domain must pass
  873.    through at least one policy gateway, and hence path agent, in the
  874.    source domain.  A host need not know how to reach any policy gateways
  875.    in its domain; it need only know how to reach a gateway on its own
  876.    local network.  Gateways within the source domain direct inter-domain
  877.    host traffic toward policy gateways, using default routes or routes
  878.    derived from other inter-domain routing procedures.
  879.  
  880.    If a source domain does not support IDPR and requires an IDPR proxy
  881.    domain to provide its hosts with policy routing, the administrator of
  882.    that source domain must carefully choose the proxy domain.  All
  883.    intervening gateways between hosts in the source domain and path
  884.    agents in the proxy domain forward traffic according to default
  885.    routes or routes derived from other inter-domain routing procedures.
  886.    In order for traffic from hosts in the source domain to reach the
  887.    proxy domain with no special intervention, the proxy domain must lie
  888.    on an existing non-IDPR inter-domain route from the source to the
  889.    destination domain.  Hence, to minimize the knowledge a domain
  890.    administrator must have about inter-domain routes when selecting a
  891.    proxy domain, we recommend that a domain administrator select its
  892.    proxy domain from the set of adjacent domains.
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Steenstrup                                                     [Page 16]
  899.  
  900. RFC 1478                   IDPR Architecture                   June 1993
  901.  
  902.  
  903.    In either case, the first policy gateway to receive messages from an
  904.    inter-domain traffic flow originating at the source domain acts as
  905.    the path agent for the host generating that flow.
  906.  
  907. 3.2.2.  IDPR Servers
  908.  
  909.    IDPR servers are the entities that manage the IDPR databases and that
  910.    respond to queries for information from policy gateways or other
  911.    servers.  Each IDPR server may be a dedicated device, physically
  912.    separate from the policy gateway, or it may be part of the
  913.    functionality of the policy gateway itself.  Separating the server
  914.    functions from the policy gateways reduces the processing and memory
  915.    requirements for and increases the data traffic carrying capacity of
  916.    the policy gateways.
  917.  
  918.    The following IDPR databases: routing information, route, mapping,
  919.    and configuration, may be distributed hierarchically, with partial
  920.    redundancy throughout the Internet.  This arrangement implies a
  921.    hierarchy of the associated servers, where a server's position in the
  922.    hierarchy determines the extent of its database.  At the bottom of
  923.    the hierarchy are the "local servers" that maintain information
  924.    pertinent to a single domain; at the top of the hierarchy are the
  925.    "global servers" that maintain information pertinent to all domains
  926.    in the Internet.  There may be zero or more levels in between the
  927.    local and global levels.
  928.  
  929.    Hierarchical database organization relieves most IDPR servers of the
  930.    burden of maintaining information about large portions of the
  931.    Internet, most of which their clients will never request.
  932.    Distributed database organization, with redundancy, allows clients to
  933.    spread queries among IDPR servers, thus reducing the load on any one
  934.    server.  Furthermore, failure to communicate with a given IDPR server
  935.    does not mean the loss of the entire service, as a client may obtain
  936.    the information from another server.  We note that some IDPR
  937.    databases, such as the mapping database, may grow so large that it is
  938.    not feasible to store the entire database at any single server.
  939.  
  940.    IDPR routing information databases need not be completely consistent
  941.    for proper policy route generation and use, because message
  942.    forwarding along policy routes is completely specified by the source
  943.    path agent.  The absence of a requirement for consistency among IDPR
  944.    routing information databases implies that there is no requirement
  945.    for strict synchronization of these databases.  Such synchronization
  946.    is costly in terms of the message processing and transmission
  947.    bandwidth required.  Nevertheless, each IDPR route server should have
  948.    a query/response mechanism for making its routing information
  949.    database consistent with that of another route server, if necessary.
  950.    A route server uses this mechanism to update its routing information
  951.  
  952.  
  953.  
  954. Steenstrup                                                     [Page 17]
  955.  
  956. RFC 1478                   IDPR Architecture                   June 1993
  957.  
  958.  
  959.    database following detection of a gap or potential error in database
  960.    contents, for example, when the route server returns to service after
  961.    disconnection from the Internet.
  962.  
  963.    A route server in one domain wishing to communicate with a route
  964.    server in another domain must establish a policy route to the other
  965.    route server's domain.  To generate and establish a policy route, the
  966.    route server must know the other route server's domain, and it must
  967.    have sufficient routing information to construct a route to that
  968.    domain.  As route servers may often intercommunicate in order to
  969.    obtain routing information, one might assume an ensuing deadlock in
  970.    which a route server requires routing information from another route
  971.    server but does not have sufficient mapping and routing information
  972.    to establish a policy route to that route server.  However, such a
  973.    deadlock should seldom persist, if the following IDPR functionality
  974.    is in place:
  975.  
  976.    - A mechanism that allows a route server to gain access, during route
  977.      server initialization, to the identities of the other route servers
  978.      within its domain.  Using this information, the route server need not
  979.      establish policy routes in order to query these route servers for
  980.      routing information.
  981.  
  982.    - A mechanism that allows a route server to gain access, during route
  983.      server initialization, to its domain's adjacencies.  Using this
  984.      information, the route server may establish policy routes to the
  985.      adjacent domains in order to query their route servers for routing
  986.      information when none is available within its own domain.
  987.  
  988.    - Once operational, a route server should collect (memory capacity
  989.      permitting) all the routing information to which it has access.  A
  990.      domain usually does not restrict distribution of its routing
  991.      information but instead distributes its routing information to all
  992.      other Internet domains.  Hence, a route server in a given domain is
  993.      likely to receive routing information from most Internet domains.
  994.  
  995.    - A mechanism that allows an operational route server to obtain the
  996.      identities of external route servers from which it can obtain routing
  997.      information and of the domains containing these route servers.
  998.      Furthermore, this mechanism should not require mapping server queries.
  999.      Rather, each domain should distribute in its routing information
  1000.      messages the identities of all route servers, within its domain, that
  1001.      may be queried by clients outside of its domain.
  1002.  
  1003.    When a host in one domain wishes to communicate with a host in
  1004.    another domain, the path agent in the source domain must establish a
  1005.    policy route to a path agent in the destination domain.  However, the
  1006.    source path agent must first query a mapping server, to determine the
  1007.  
  1008.  
  1009.  
  1010. Steenstrup                                                     [Page 18]
  1011.  
  1012. RFC 1478                   IDPR Architecture                   June 1993
  1013.  
  1014.  
  1015.    identity of the destination domain.  The queried mapping server may
  1016.    in turn contact other mapping servers to obtain a reply.  As with
  1017.    route server communication, one might assume an ensuing deadlock in
  1018.    which a mapping server requires mapping information from an external
  1019.    mapping server but the path agent handling the traffic does not have
  1020.    sufficient mapping information to determine the domain of, and hence
  1021.    establish a policy route to, that mapping server.
  1022.  
  1023.    We have previously described how to minimize the potential for
  1024.    deadlock in obtaining routing information.  To minimize the potential
  1025.    for deadlock in obtaining mapping information, there should be a
  1026.    mechanism that allows a mapping server to gain access, during mapping
  1027.    server initialization, to the identities of other mapping servers and
  1028.    the domains in which they reside.  Thus, when a mapping server needs
  1029.    to query an external mapping server, it knows the identity of that
  1030.    mapping server and sends a message.  The path agent handling this
  1031.    traffic queries a local mapping server to resolve the identity of the
  1032.    external mapping server to the proper domain and then proceeds to
  1033.    establish a policy route to that domain.
  1034.  
  1035. 3.2.3.  Entity Identifiers
  1036.  
  1037.    Each domain has a unique identifier within the Internet, specifically
  1038.    an ordinal number in the enumeration of Internet domains, determined
  1039.    by the Internet Assigned Numbers Authority (IANA) who is responsible
  1040.    for maintaining such information.
  1041.  
  1042.    Each virtual gateway has a unique local identifier within a domain,
  1043.    derived from the adjacent domain's identifier together with the
  1044.    virtual gateway's ordinal number within an enumeration of the virtual
  1045.    gateways connecting the two domains.  The administrators of both
  1046.    domains mutually agree upon the enumeration of the virtual gateways
  1047.    within their shared set of virtual gateways; selecting a single
  1048.    virtual gateway enumeration that applies in both domains eliminates
  1049.    the need to maintain a mapping between separate virtual gateway
  1050.    ordinal numbers in each domain.
  1051.  
  1052.    Each policy gateway and route server has a unique local identifier
  1053.    within its domain, specifically an ordinal number in the domain
  1054.    administrator's enumeration of IDPR entities within its domain.  This
  1055.    local identifier, when combined with the domain identifier, produces
  1056.    a unique identifier within the Internet for the policy gateway or
  1057.    route server.
  1058.  
  1059. 3.3.  Security and Reliability
  1060.  
  1061.    The correctness of control information, and in particular routing-
  1062.    related information, distributed throughout the Internet is a
  1063.  
  1064.  
  1065.  
  1066. Steenstrup                                                     [Page 19]
  1067.  
  1068. RFC 1478                   IDPR Architecture                   June 1993
  1069.  
  1070.  
  1071.    critical factor affecting the Internet's ability to transport data.
  1072.    As the number and heterogeneity of Internet domains increases, so too
  1073.    does the potential for both information corruption and denial of
  1074.    service attacks.  Thus, we have imbued the IDPR architecture with a
  1075.    variety of mechanisms to:
  1076.  
  1077.    - Promote timely delivery of control information.
  1078.  
  1079.    - Minimize acceptance and distribution of corrupted control
  1080.      information.
  1081.  
  1082.    - Verify authenticity of a source of control information.
  1083.  
  1084.    - Reduce the chances for certain types of denial of service attacks.
  1085.  
  1086.    Consult [11] for a general security architecture for routing and [12]
  1087.    for a security architecture for inter-domain routing.
  1088.  
  1089. 3.3.1.  Retransmissions and Acknowledgements
  1090.  
  1091.    All IDPR entities must make an effort to accept and distribute only
  1092.    correct IDPR control messages.  Each IDPR entity that transmits an
  1093.    IDPR control message expects an acknowledgement from the recipient
  1094.    and must retransmit the message up to a maximum number of times when
  1095.    an acknowledgement is not forthcoming.  An IDPR entity that receives
  1096.    an IDPR control message must verify message content integrity and
  1097.    source authenticity before accepting, acknowledging, and possibly
  1098.    redistributing the message.
  1099.  
  1100. 3.3.2.  Integrity Checks
  1101.  
  1102.    Integrity checks on message contents promote the detection of
  1103.    corrupted information.  Each IDPR entity that receives an IDPR
  1104.    control message must perform several integrity checks on the
  1105.    contents.  Individual IDPR protocols may apply more stringent
  1106.    integrity checks than those listed below.  The required checks
  1107.    include confirmation of:
  1108.  
  1109.    - Recognized message version.
  1110.  
  1111.    - Consistent message length.
  1112.  
  1113.    - Valid message checksum.
  1114.  
  1115.    Each IDPR entity may also apply these integrity checks to IDPR data
  1116.    messages.  Although the IDPR architecture only requires data message
  1117.    integrity checks at the last IDPR entity on a path, it does not
  1118.    preclude intermediate policy gateways from performing these checks as
  1119.  
  1120.  
  1121.  
  1122. Steenstrup                                                     [Page 20]
  1123.  
  1124. RFC 1478                   IDPR Architecture                   June 1993
  1125.  
  1126.  
  1127.    well.
  1128.  
  1129. 3.3.3.  Source Authentication
  1130.  
  1131.    Authentication of a message's source promotes the detection of a
  1132.    rogue entity masquerading as another legitimate entity.  Each IDPR
  1133.    entity that receives an IDPR control message must verify the
  1134.    authenticity of the message source.  We recommend that the source of
  1135.    the message supply a digital signature for authentication by message
  1136.    recipients.  The digital signature should cover the entire message
  1137.    contents (or a hash function thereof), so that it can serve as the
  1138.    message checksum as well as the source authentication information.
  1139.  
  1140.    Each IDPR entity may also authenticate the source of IDPR data
  1141.    messages; however, the IDPR architecture does not require source
  1142.    authentication of data messages.  Instead, we recommend that higher
  1143.    level (end-to-end) protocols, not IDPR, assume the responsibility for
  1144.    data message source authentication, because of the amount of
  1145.    computation involved in verifying a digital signature.
  1146.  
  1147. 3.3.4.  Timestamps
  1148.  
  1149.    Message timestamps promote the detection of out-of-date messages as
  1150.    well as message replays.  Each IDPR control message must carry a
  1151.    timestamp supplied by the source, which serves to indicate the age of
  1152.    the message.  IDPR entities use the absolute value of a timestamp to
  1153.    confirm that the message is current and use the relative difference
  1154.    between timestamps to determine which message contains the most
  1155.    recent information.  Hence, all IDPR entities must possess internal
  1156.    clocks that are synchronized to some degree, in order for the
  1157.    absolute value of a message timestamp to be meaningful.  The
  1158.    synchronization granularity required by the IDPR architecture is on
  1159.    the order of minutes and can be achieved manually.
  1160.  
  1161.    Each IDPR entity that receives an IDPR control message must check
  1162.    that the message is timely.  Any IDPR control message whose timestamp
  1163.    lies outside of the acceptable range may contain stale or corrupted
  1164.    information or may have been issued by a source whose internal clock
  1165.    has lost synchronization with the message recipient's internal clock.
  1166.  
  1167.    IDPR data messages also carry timestamps; however, the IDPR
  1168.    architecture does not require timestamp acceptability checks on IDPR
  1169.    data messages.  Instead, we recommend that IDPR entities only check
  1170.    IDPR data message timestamps during problem diagnosis, for example,
  1171.    when checking for suspected message replays.
  1172.  
  1173. 3.4.  An Example of IDPR Operation
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Steenstrup                                                     [Page 21]
  1179.  
  1180. RFC 1478                   IDPR Architecture                   June 1993
  1181.  
  1182.  
  1183.    We illustrate how IDPR works by stepping through an example.  In this
  1184.    example, we assume that all domains support IDPR and that all domain
  1185.    egress points are policy gateways.
  1186.  
  1187.    Suppose host Hx in domain AD X wants to communicate with host Hy in
  1188.    domain AD Y.  Hx need not know the identity of its own domain or of
  1189.    Hy's domain in order to send messages to Hy.  Instead, Hx simply
  1190.    forwards a message bound for Hy to one of the gateways on its local
  1191.    network, according to its local forwarding information.  If the
  1192.    recipient gateway is a policy gateway, the resident path agent
  1193.    determines how to forward the message outside of the domain.
  1194.    Otherwise, the recipient gateway forwards the message to another
  1195.    gateway in AD X, according to its local forwarding information.
  1196.    Eventually, the message will arrive at a policy gateway in AD X, as
  1197.    described previously in section 3.2.1.
  1198.  
  1199.    The path agent resident in the recipient policy gateway uses the
  1200.    message header, including source and destination addresses and any
  1201.    requested service information (for example, type of service), in
  1202.    order to determine whether it is an intra-domain or inter-domain
  1203.    message, and if inter-domain, whether it requires an IDPR policy
  1204.    route.  Specifically, the path agent attempts to locate a forwarding
  1205.    information database entry for the given traffic flow.  The
  1206.    forwarding information database will already contain entries for all
  1207.    of the following:
  1208.  
  1209.    - All intra-domain traffic flows.  Intra-domain forwarding information
  1210.      is integrated into the forwarding database as soon as it is received.
  1211.  
  1212.    - Inter-domain traffic flows that do not require IDPR policy routes.
  1213.      Non-IDPR inter-domain forwarding information is integrated into the
  1214.      forwarding database as soon as it is received.
  1215.  
  1216.    - IDPR inter-domain traffic flows for which a path has already been set
  1217.      up.  IDPR forwarding information is integrated into the forwarding
  1218.      database only during path setup.
  1219.  
  1220.    The path agent uses the message header contents to guide the search
  1221.    for a forwarding information database entry for a traffic flow; we
  1222.    suggest a radix search to locate a database entry.  When the search
  1223.    terminates, it either produces a forwarding information database
  1224.    entry or a directive to generate such an entry for an IDPR traffic
  1225.    flow.  If the search terminates in an existing database entry, the
  1226.    path agent forwards the message according to that entry.
  1227.  
  1228.    Suppose that the search terminates indicating that the traffic flow
  1229.    between Hx and Hy requires an IDPR route and that no forwarding
  1230.    information database entry yet exists for this flow.  In this case,
  1231.  
  1232.  
  1233.  
  1234. Steenstrup                                                     [Page 22]
  1235.  
  1236. RFC 1478                   IDPR Architecture                   June 1993
  1237.  
  1238.  
  1239.    the path agent first determines the source and destination domains
  1240.    associated with the message's source and destination addresses,
  1241.    before attempting to obtain a policy route.  The path agent relies on
  1242.    the mapping servers to supply the domain information, but it caches
  1243.    all mapping server responses locally to limit the number of future
  1244.    queries.  When attempting to resolve an address to a domain, the path
  1245.    agent always checks its local cache before contacting a mapping
  1246.    server.
  1247.  
  1248.    After obtaining the source and destination domain information, the
  1249.    path agent attempts to obtain a policy route to carry the traffic
  1250.    from Hx to Hy.  The path agent relies on the route servers to supply
  1251.    policy routes, but it caches all route server responses locally to
  1252.    limit the number of future queries.  When attempting to locate a
  1253.    suitable policy route, the path agent consults its local cache before
  1254.    contacting a route server.  A policy route contained in the cache is
  1255.    suitable provided that its associated source domain is AD X, its
  1256.    associated destination domain is AD Y, and it satisfies the service
  1257.    requirements specified in the data message or through source policy
  1258.    configuration.
  1259.  
  1260.    If no suitable cache entry exists, the path agent queries the route
  1261.    server, providing it with the source and destination domains together
  1262.    with the requested services.  Upon receiving a policy route query, a
  1263.    route server consults its route database.  If it cannot locate a
  1264.    suitable route in its route database, the route server attempts to
  1265.    generate at least one route to domain AD Y, consistent with the
  1266.    requested services for Hx.
  1267.  
  1268.    The response to a successful route query consists of a set of
  1269.    candidate routes, from which the path agent makes its selection.  We
  1270.    expect that a path agent will normally choose a single route from a
  1271.    candidate set.  Nevertheless, the IDPR architecture does not preclude
  1272.    a path agent from selecting multiple routes from the candidate set.
  1273.    A path agent may desire multiple routes to support features such as
  1274.    fault tolerance or load balancing; however, the IDPR architecture
  1275.    does not specify how the path agent should use multiple routes.  In
  1276.    any case, a route server always returns a response to a path agent's
  1277.    query, even if it is not successful in locating a suitable policy
  1278.    route.
  1279.  
  1280.    If the policy route is a new route provided by the route server,
  1281.    there will be no existing path for the route and thus the path agent
  1282.    must set up such a path.  However, if the policy route is an existing
  1283.    route extracted from the path agent's cache, there may well be an
  1284.    existing path for the route, set up to accommodate a different host
  1285.    traffic flow.  The IDPR architecture permits multiple host traffic
  1286.    flows to use the same path, provided that all flows sharing the path
  1287.  
  1288.  
  1289.  
  1290. Steenstrup                                                     [Page 23]
  1291.  
  1292. RFC 1478                   IDPR Architecture                   June 1993
  1293.  
  1294.  
  1295.    travel between the same endpoint domains and have the same service
  1296.    requirements.  Nevertheless, the IDPR architecture does not preclude
  1297.    a path agent from setting up distinct paths along the same policy
  1298.    route to preserve the distinction between host traffic flows.
  1299.  
  1300.    The path agent associates an identifier with the path, which will be
  1301.    included in each message that travels down the path and will be used
  1302.    by the policy gateways along the path in order to determine how to
  1303.    forward the message.  If the path already exists, the path agent uses
  1304.    the preexisting identifier.  However, for new paths, the path agent
  1305.    chooses a path identifier that is different from those of all other
  1306.    paths that it manages.  The path agent also updates its forwarding
  1307.    information database to reference the path identifier and modifies
  1308.    its search procedure to yield the correct forwarding information
  1309.    database entry given the data message header.
  1310.  
  1311.    For new paths, the path agent initiates path setup, communicating the
  1312.    policy route, in terms of requested services, constituent domains,
  1313.    relevant transit policies, and the connecting virtual gateways, to
  1314.    policy gateways in intermediate domains.  Using this information, an
  1315.    intermediate policy gateway determines whether to accept or refuse
  1316.    the path and to which policy gateway to forward the path setup
  1317.    information.  The path setup procedure allows policy gateways to set
  1318.    up a path in both directions simultaneously.  Each intermediate
  1319.    policy gateway, after path acceptance, updates its forwarding
  1320.    information database to include an entry that associates the path
  1321.    identifier with the appropriate previous and next hop policy
  1322.    gateways.  Paths remain in place until they are torn down because of
  1323.    failure, expiration, or when resources are scarce, preemption in
  1324.    favor of other paths.
  1325.  
  1326.    When a policy gateway in AD Y accepts a path, it notifies the source
  1327.    path agent in AD X.  We expect that the source path agent will
  1328.    normally wait until a path has been successfully established before
  1329.    using it to transport data traffic.  However, the IDPR architecture
  1330.    does not preclude a path agent from forwarding data messages along a
  1331.    path prior to confirmation of successful path establishment.  In this
  1332.    case, the source path agent transmits data messages along the path
  1333.    with full knowledge that the path may not yet have been successfully
  1334.    established at all intermediate policy gateways and thus that these
  1335.    data messages will be immediately discarded by any policy gateway not
  1336.    yet able to recognize the path identifier.
  1337.  
  1338.    We note that data communication between Hx and Hy may occur over two
  1339.    separate IDPR paths: one from AD X to AD Y and one from AD Y to AD X.
  1340.    The reasons are that within a domain, hosts know nothing about path
  1341.    agents nor IDPR paths, and path agents know nothing about other path
  1342.    agents' existing IDPR paths.  Thus, in AD Y, the path agent that
  1343.  
  1344.  
  1345.  
  1346. Steenstrup                                                     [Page 24]
  1347.  
  1348. RFC 1478                   IDPR Architecture                   June 1993
  1349.  
  1350.  
  1351.    terminates the path from AD X may not be the same as the path agent
  1352.    that receives traffic from Hy destined for Hx.  In this case, receipt
  1353.    of traffic from Hy forces the second path agent to set up a new path
  1354.    from AD Y to AD X.
  1355.  
  1356. 4.  Accommodating a Large, Heterogeneous Internet
  1357.  
  1358.    The IDPR architecture must be able to accommodate an Internet
  1359.    containing O(10,000) domains, supporting diverse source and transit
  1360.    policies.  Thus, we have endowed the IDPR architecture with many
  1361.    features that allow it to function effectively in such an
  1362.    environment.
  1363.  
  1364. 4.1.  Domain Level Routing
  1365.  
  1366.    The IDPR architecture provides policy routing among administrative
  1367.    domains.  In order to construct policy routes, route servers require
  1368.    routing information at the domain level only; no intra-domain details
  1369.    need be included in IDPR routing information.  The size of the
  1370.    routing information database maintained by a route server depends not
  1371.    on the number of Internet gateways, networks, and links, but on how
  1372.    these gateways, networks, and links are grouped into domains and on
  1373.    what services they offer.  Therefore, the number of entries in an
  1374.    IDPR routing information database depends on the number of domains
  1375.    and the number and size of the transit policies supported by these
  1376.    domains.
  1377.  
  1378.    Policy gateways distribute IDPR routing information only when
  1379.    detectable inter-domain changes occur and may also elect to
  1380.    distribute routing information periodically (for example, on the
  1381.    order of once per day) as a backup.  We expect that a pair of policy
  1382.    gateways within a domain will normally be connected such that when
  1383.    the primary intra-domain route between them fails, the intra-domain
  1384.    routing procedure will be able to construct an alternate route.
  1385.    Thus, an intra-domain failure is unlikely to be visible at the
  1386.    inter-domain level and hence unlikely to force an inter-domain
  1387.    routing change.  Therefore, we expect that policy gateways will not
  1388.    often generate and distribute IDPR routing information messages.
  1389.  
  1390.    IDPR entities rely on intra-domain routing procedures operating
  1391.    within domains to transport inter-domain messages across domains.
  1392.    Hence, IDPR messages must appear well-formed according to the intra-
  1393.    domain routing and addressing procedures in each domain traversed.
  1394.    Recall that source authentication information (refer to section 3.3.3
  1395.    above) may cover the entire IDPR message.  Thus, the IDPR portion of
  1396.    such a message cannot be modified at intermediate domains along the
  1397.    path without causing source authenticity checks to fail.  Therefore,
  1398.    at domain boundaries, IDPR messages require encapsulation and
  1399.  
  1400.  
  1401.  
  1402. Steenstrup                                                     [Page 25]
  1403.  
  1404. RFC 1478                   IDPR Architecture                   June 1993
  1405.  
  1406.  
  1407.    decapsulation according to the routing procedures and addressing
  1408.    schemes operating with the given domain.  Only policy gateways and
  1409.    route servers must be capable of handling IDPR-specific messages;
  1410.    other gateways and hosts simply treat the encapsulated IDPR messages
  1411.    like any other message.  Thus, for the Internet to support IDPR, only
  1412.    a small proportion of Internet entities require special IDPR
  1413.    software.
  1414.  
  1415.    With domain level routes, many different traffic flows may use not
  1416.    only the same policy route but also the same path, as long as their
  1417.    source domains, destination domains, and service requirements are
  1418.    compatible.  The size of the forwarding information database
  1419.    maintained by a policy gateway depends not on the number of Internet
  1420.    hosts but on how these hosts are grouped into domains, which hosts
  1421.    intercommunicate, and on how much distinction a source domain wishes
  1422.    to preserve among its traffic flows.  Therefore, the number of
  1423.    entries in an IDPR forwarding information database depends on the
  1424.    number of domains and the number of source policies supported by
  1425.    those domains.  Moreover, memory associated with failed, expired, or
  1426.    disused paths can be reclaimed for new paths, and thus forwarding
  1427.    information for many paths can be accommodated in a policy gateway's
  1428.    forwarding information database.
  1429.  
  1430. 4.2.  Route Generation
  1431.  
  1432.    Route generation is the most computationally complex part of IDPR,
  1433.    because of the number of domains and the number and heterogeneity of
  1434.    policies that it must accommodate.  Route servers must generate
  1435.    policy routes that satisfy the requested services of the source
  1436.    domains and respect the offered services of the transit domains.
  1437.  
  1438.    We distinguish requested qualities of service and route generation
  1439.    with respect to them as follows:
  1440.  
  1441.    - Requested service limits include upper bounds on route delay, route
  1442.      delay variation, and monetary cost for the session and lower bounds
  1443.      on available route bandwidth.  Generating a route that must satisfy
  1444.      more than one quality of service constraint, for example route delay
  1445.      of no more than X seconds and available route bandwidth of no less
  1446.      than Y bits per second, is an NP-complete problem.
  1447.  
  1448.    - Optimal requested services include minimum route delay, minimum
  1449.      route delay variation, minimum monetary cost for the session, and
  1450.      maximum available route bandwidth.  In the worst case, the
  1451.      computational complexity of generating a route that is optimal with
  1452.      respect to a given requested service is O((N + L) log N) for
  1453.      Dijkstra's shortest path first (SPF) search and O(N + (L * L)) for
  1454.      breadth-first (BF) search, where N is the number of nodes and L is
  1455.  
  1456.  
  1457.  
  1458. Steenstrup                                                     [Page 26]
  1459.  
  1460. RFC 1478                   IDPR Architecture                   June 1993
  1461.  
  1462.  
  1463.      the number of links in the search graph.  Multi-criteria
  1464.      optimization, for example finding a route with minimal delay
  1465.      variation and minimal monetary cost for the session, may be defined
  1466.      in several ways.  One approach to multi-criteria optimization is to
  1467.      assign each link a single value equal to a weighted sum of the
  1468.      values of the individual offered qualities of service and generate a
  1469.      route that is optimal with respect to this new criterion.  However,
  1470.      it may not always be possible to achieve the desired route
  1471.      generation behavior using such a linear combination of qualities of
  1472.      service.
  1473.  
  1474.    To help contain the combinatorial explosion of processing and memory
  1475.    costs associated with route generation, we supply the following
  1476.    guidelines for generation of suitable policy routes:
  1477.  
  1478.    - Each route server should only generate policy routes from the
  1479.      perspective of its own domain as source; it need not generate policy
  1480.      routes for arbitrary source/destination domain pairs.  Thus, we can
  1481.      distribute the computational burden over all route servers.
  1482.  
  1483.    - Route servers should precompute routes for which they anticipate
  1484.      requests and should generate routes on demand only in order to
  1485.      satisfy unanticipated route requests.  Hence, a single route server
  1486.      can distribute its computational burden over time.
  1487.  
  1488.    - Route servers should cache the results of route generation, in order
  1489.      to minimize the computation associated with responding to future
  1490.      route requests.
  1491.  
  1492.    - To handle requested service limits, a route server should always
  1493.      select the first route generated that satisfies all of the requested
  1494.      service limits.
  1495.  
  1496.    - To handle multi-criteria optimization in route selection, a route
  1497.      server should generate routes that are optimal with respect to the
  1498.      first specified optimal requested service listed in the source
  1499.      policy.  The route server should resolve ties between otherwise
  1500.      equivalent routes by evaluating these routes according to the other
  1501.      optimal requested services, in the order in which they are
  1502.      specified.  With respect to the route server's routing information
  1503.      database, the selected route is optimal according to the first
  1504.      optimal requested service but is not necessarily optimal according
  1505.      to any other optimal requested service.
  1506.  
  1507.    - To handle a mixture of requested service limits and optimal
  1508.      requested services, a route server should generate routes that
  1509.      satisfy all of the requested service limits.  The route server
  1510.      should resolve ties between otherwise equivalent routes by
  1511.  
  1512.  
  1513.  
  1514. Steenstrup                                                     [Page 27]
  1515.  
  1516. RFC 1478                   IDPR Architecture                   June 1993
  1517.  
  1518.  
  1519.      evaluating those routes as described in the multi-criteria
  1520.      optimization case above.
  1521.  
  1522.    - All else being equal, a route server should always prefer
  1523.      minimum-hop routes, because they minimize the amount of network
  1524.      resources consumed by the routes.
  1525.  
  1526.    All domains need not execute the identical route generation
  1527.    procedure.  Each domain administrator is free to specify the IDPR
  1528.    route generation procedure for route servers in its own domain,
  1529.    making the procedure as simple or as complex as desired.
  1530.  
  1531. 4.3.  SuperDomains
  1532.  
  1533.    A "super domain" is itself an administrative domain, comprising a set
  1534.    of contiguous domains with similar transit policies and formed
  1535.    through consensus of the administrators of the constituent domains.
  1536.    Super domains provide a mechanism for reducing the amount of IDPR
  1537.    routing information distributed throughout the Internet.  Given a set
  1538.    of n contiguous domains with consistent transit policies, the amount
  1539.    of routing information associated with the set is approximately n
  1540.    times smaller when the set is considered as a single super domain
  1541.    than when it is considered as n individual domains.
  1542.  
  1543.    When forming a super domain from constituent domains whose transit
  1544.    policies do not form a consistent set, one must determine which
  1545.    transit policies to distribute in the routing information for the
  1546.    super domain.  The range of possibilities is bounded by the following
  1547.    two alternatives, each of which reduces the amount of routing
  1548.    information associated with the set of constituent domains:
  1549.  
  1550.    - The transit policies supported by the super domain are derived from
  1551.      the union of the access restrictions and the intersection of the
  1552.      qualities of service, over all constituent domains.  In this case,
  1553.      the formation of the super domain reduces the number of services
  1554.      offered by the constituent domains, but guarantees that none of
  1555.      these domains' access restrictions are violated.
  1556.  
  1557.    - The transit policies supported by the super domain are derived from
  1558.      the intersection of the access restrictions and the union of the
  1559.      qualities of service.  In this case, the formation of the super
  1560.      domain increases the number of services offered by the constituent
  1561.      domains, but forces relaxation of these domains' access
  1562.      restrictions.
  1563.  
  1564.    Thus, we recommend that domain administrators refrain from
  1565.    arbitrarily grouping domains into super domains, unless they fully
  1566.    understand the consequences.
  1567.  
  1568.  
  1569.  
  1570. Steenstrup                                                     [Page 28]
  1571.  
  1572. RFC 1478                   IDPR Architecture                   June 1993
  1573.  
  1574.  
  1575.    The existence of super domains imposes a hierarchy on domains within
  1576.    the Internet.  For model consistency, we assume that there is a
  1577.    single super domain at the top of the hierarchy, which contains the
  1578.    set of all high-level domains.  A domain's identity is defined
  1579.    relative to the domain hierarchy.  Specifically, a domain's identity
  1580.    may be defined in terms of the domains containing it, the domains it
  1581.    contains, or both.
  1582.  
  1583.    For any domain AD X, the universe of distribution for its routing
  1584.    information usually extends only to those domains contained in AD X's
  1585.    immediate super domain and at the same level of the hierarchy as AD
  1586.    X.  However, the IDPR architecture does not preclude AD X from
  1587.    distributing its routing information to domains at arbitrarily high
  1588.    levels in the hierarchy, as long as the immediate super domain of
  1589.    these domains is also a super domain of AD X.  For example, the
  1590.    administrator of an individual domain within a super domain may wish
  1591.    to have one of its transit policies advertised outside of the
  1592.    immediate super domain, so that other domains can take advantage of a
  1593.    quality of service not offered by the super domain itself.  In this
  1594.    case, the super domain and the consituent domain may distribute
  1595.    routing information at the same level in the domain hierarchy, even
  1596.    though one domain actually contains the other.
  1597.  
  1598.    We note that the existence of super domains may restrict the number
  1599.    of routes available to source domains with access restrictions.  For
  1600.    example, suppose that a source domain AD X has source policies that
  1601.    preclude its traffic from traversing a domain AD Y and that AD Y is
  1602.    contained in a super domain AD Z.  If domains within AD Z do not
  1603.    advertise routing information separately, then route servers within
  1604.    AD X do not have enough routing information to construct routes that
  1605.    traverse AD Z but that avoid AD Y.  Hence, route servers in AD X must
  1606.    generate routes that avoid AD Z altogether.
  1607.  
  1608. 4.4.  Domain Communities
  1609.  
  1610.    A "domain community" is a group of domains to which a given domain
  1611.    distributes routing information, and hence domain communities may be
  1612.    used to limit routing information distribution.  Domain communities
  1613.    not only reduce the costs associated with distributing and storing
  1614.    routing information but also allow concealment of routing information
  1615.    from domains outside of the community.  Unlike a super domain, a
  1616.    domain community is not necessarily an administrative domain.
  1617.    However, formation of a domain community may or may not involve the
  1618.    consent of the administrators of the member domains, and the
  1619.    definition of the community may be implicit or explicit.
  1620.  
  1621.    Each domain administrator determines the extent of distribution of
  1622.    its domain's routing information and hence unilaterally defines a
  1623.  
  1624.  
  1625.  
  1626. Steenstrup                                                     [Page 29]
  1627.  
  1628. RFC 1478                   IDPR Architecture                   June 1993
  1629.  
  1630.  
  1631.    domain community.  By default, this community encompasses all
  1632.    Internet domains.  However, the domain administrator may restrict
  1633.    community membership by describing the community as a neighborhood
  1634.    (defined, for example, in terms of domain hops) or as a list of
  1635.    member domains.
  1636.  
  1637.    A group of domain administrators may mutually agree on distribution
  1638.    of their domains' routing information among their domains and hence
  1639.    multilaterally define a domain community.  By default, this community
  1640.    encompasses all Internet domains.  However, the domain administrators
  1641.    may restrict community membership by describing the community as a
  1642.    list of member domains.  In fact, this domain community may serve as
  1643.    a multicast group for routing information distribution.
  1644.  
  1645. 4.5.  Robustness in the Presence of Failures
  1646.  
  1647.    The IDPR architecture possesses the following features that make it
  1648.    resistent to failures in the Internet:
  1649.  
  1650.    - Multiple connections between adjacent policy gateways in a virtual
  1651.      gateway and between peer and neighbor policy gateways across an
  1652.      administrative domain minimize the number of single component
  1653.      failures that are visible at the inter-domain level.
  1654.  
  1655.    - Policy gateways distribute IDPR routing information immediately
  1656.      after detecting a connectivity failure at the inter-domain level,
  1657.      and route servers immediately incorporate this information into
  1658.      their routing information databases.  This ensures that new policy
  1659.      routes will not include those domains involved in the connectivity
  1660.      failure.
  1661.  
  1662.    - The routing information database query/response mechanism ensures
  1663.      rapid updating of the routing information database for a previously
  1664.      failed route server following the route server's reconnection to the
  1665.      Internet.
  1666.  
  1667.    - To minimize user service disruption following a
  1668.      failure in the primary path, policy gateways attempt local path
  1669.      repair immediately after detecting a connectivity failure.
  1670.      Moreover, path agents may maintain standby alternate paths that can
  1671.      become the primary path if necessary.
  1672.  
  1673.    - Policy gateways within a domain continuously monitor domain
  1674.      connectivity and hence can detect and identify domain partitions.
  1675.      Moreover, IDPR can continue to operate properly in the presence of
  1676.      partitioned domains.
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682. Steenstrup                                                     [Page 30]
  1683.  
  1684. RFC 1478                   IDPR Architecture                   June 1993
  1685.  
  1686.  
  1687. 4.5.1.  Path Repair
  1688.  
  1689.    Failure of one or more entities on a given policy route may render
  1690.    the route unusable.  If the failure is within a domain, IDPR relies
  1691.    on the intra-domain routing procedure to find an alternate route
  1692.    across the domain, which leaves the path unaffected.  If the failure
  1693.    is in a virtual gateway, policy gateways must bear the responsibility
  1694.    of repairing the path.  Policy gateways nearest to the failure are
  1695.    the first to recognize its existence and hence can react most quickly
  1696.    to repair the path.
  1697.  
  1698.    Relinquishing control over path repair to policy gateways in other
  1699.    domains may be unacceptable to some domain administrators.  The
  1700.    reason is that these policy gateways cannot guarantee construction of
  1701.    a path that satisfies the source policies of the source domain, as
  1702.    they have no knowledge of other domains' source policies.
  1703.  
  1704.    Nevertheless, limited local path repair is feasible, without
  1705.    distributing either source policy information throughout the Internet
  1706.    or detailed path information among policy gateways in a domain or in
  1707.    a virtual gateway.  We say that a path is "locally repairable" if
  1708.    there exists an alternate route between two policy gateways,
  1709.    separated by at most one policy gateway, on the path.  This
  1710.    definition covers path repair in the presence of failed routes
  1711.    between consecutive policy gateways as well as failed policy gateways
  1712.    themselves.
  1713.  
  1714.    A policy gateway attempts local path repair, proceeding in the
  1715.    forward direction of the path, upon detecting that the next policy
  1716.    gateway on a path is no longer reachable.  The policy gateway must
  1717.    retain enough of the original path setup information to repair the
  1718.    path locally.  Using the path setup information, the policy gateway
  1719.    attempts to locate a route around the unreachable policy gateway.
  1720.    Specifically, the policy gateway attempts to establish contact with
  1721.    either:
  1722.  
  1723.    - A peer of the unreachable policy gateway.  In this case, the
  1724.      contacted policy gateway attempts to locate the next policy gateway
  1725.      following the unreachable policy gateway, on the original path.
  1726.  
  1727.    - A peer of itself, if the unreachable policy gateway is an adjacent
  1728.      policy gateway and if the given policy gateway no longer has direct
  1729.      connections to any adjacent policy gateways.  In this case, the
  1730.      contacted policy gateway attempts to locate a peer of the
  1731.      unreachable policy gateway, which in turn attempts to locate the
  1732.      next policy gateway following the unreachable policy gateway, on the
  1733.      original path.
  1734.  
  1735.  
  1736.  
  1737.  
  1738. Steenstrup                                                     [Page 31]
  1739.  
  1740. RFC 1478                   IDPR Architecture                   June 1993
  1741.  
  1742.  
  1743.    If it successfully reaches the next policy gateway, the contacted
  1744.    policy gateway informs the requesting policy gateway.  In this case,
  1745.    the requesting, contacted, and next policy gateways update their
  1746.    forwarding information databases to conform to the new part of the
  1747.    path.  If it does not successfully reach the next policy gateway, the
  1748.    contacted policy gateway initiates teardown of the original path; in
  1749.    this case, the source path agent is responsible for finding a new
  1750.    route to the destination.
  1751.  
  1752. 4.5.2.  Partitions
  1753.  
  1754.    A "domain partition" exists whenever there are at least two entities
  1755.    within the domain that can no longer communicate over any intra-
  1756.    domain route.  Domain partitions not only disrupt intra-domain
  1757.    communication but also may interfere with inter-domain communication,
  1758.    particularly when the partitioned domain is a transit domain.
  1759.    Therefore, we have designed the IDPR architecture to permit effective
  1760.    use of partitioned domains and hence maximize Internet connectivity
  1761.    in the presence of domain partitions.
  1762.  
  1763.    When a domain is partitioned, it becomes a set of multiple distinct
  1764.    "components".  A domain component is a subset of the domain's
  1765.    entities such that all entities within the subset are mutually
  1766.    reachable via intra-domain routes, but no entities in the complement
  1767.    of the subset are reachable via intra-domain routes from entities
  1768.    within the subset.  Each domain component has a unique identifier,
  1769.    namely the identifier of the domain together with the ordinal number
  1770.    of the lowest-numbered operational policy gateway within the domain
  1771.    component.  No negotiation among policy gateways is necessary to
  1772.    determine the domain component's lowest-numbered operational policy
  1773.    gateway.  Instead, within each domain component, all policy gateway
  1774.    members discover mutual reachability through intra-domain
  1775.    reachability information.  Therefore, all members have a consistent
  1776.    view of which is the lowest-numbered operational policy gateway in
  1777.    the component.
  1778.  
  1779.    IDPR entities can detect and compensate for all domain partitions
  1780.    that isolate at least two groups of policy gateways from each other.
  1781.    They cannot, however, detect any domain partition that isolates
  1782.    groups of hosts only.  Note that a domain partition may segregate
  1783.    portions of a virtual gateway, such that peer policy gateways lie in
  1784.    separate domain components.  Although itself partitioned, the virtual
  1785.    gateway does not assume any additional identities.  However, from the
  1786.    perspective of the adjacent domain, the virtual gateway now connects
  1787.    to two separate domain components.
  1788.  
  1789.    Policy gateways use partition information to select routes across
  1790.    virtual gateways to the correct domain components.  They also
  1791.  
  1792.  
  1793.  
  1794. Steenstrup                                                     [Page 32]
  1795.  
  1796. RFC 1478                   IDPR Architecture                   June 1993
  1797.  
  1798.  
  1799.    distribute partition information to route servers as part of the IDPR
  1800.    routing information.  Thus, route servers know which domains are
  1801.    partitioned.  However, route servers do not know which hosts reside
  1802.    in which components of a partitioned domain; tracking this
  1803.    information would require extensive computation and communication.
  1804.    Instead, when a route server discovers that the destination of a
  1805.    requested route is a partitioned domain, it attempts to generate a
  1806.    suitable policy route to each component of the destination domain.
  1807.    Generation of multiple routes, on detection of a partitioned
  1808.    destination domain, maximizes the chances of obtaining at least one
  1809.    policy route that can be used for communication between the source
  1810.    and destination hosts.
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850. Steenstrup                                                     [Page 33]
  1851.  
  1852. RFC 1478                   IDPR Architecture                   June 1993
  1853.  
  1854.  
  1855.    5.  References
  1856.  
  1857.    [1]  Rekhter, Y., "EGP and Policy Based Routing in the New NSFNET
  1858.         Backbone", RFC 1092, February 1989.
  1859.  
  1860.    [2]  Clark, D., "Policy Routing in Internet Protocols", RFC 1102, May
  1861.         1989.
  1862.  
  1863.    [3]  Braun, H-W., "Models of Policy Based Routing", RFC 1104, June
  1864.         1989.
  1865.  
  1866.    [4]  Leiner, B., "Policy Issues in Interconnecting Networks", RFC
  1867.         1124, September 1989.
  1868.  
  1869.    [5]  Estrin, D., "Requirements for Policy Based Routing in the
  1870.         Research Internet", RFC 1125, November 1989.
  1871.  
  1872.    [6]  Little, M., "Goals and Functional Requirements for Inter-
  1873.         Autonomous System Routing", RFC 1126, July 1989.
  1874.  
  1875.    [7]  Honig, J., Katz, D., Mathis, M., Rekhter, Y., and Yu, J.,
  1876.         "Application of the Border Gateway Protocol in the Internet",
  1877.         RFC 1164, June 1990.
  1878.  
  1879.    [8]  Lougheed, K. and Rekhter, Y., "A Border Gateway Protocol 3
  1880.         (BGP-3)", RFC 1267, October 1991.
  1881.  
  1882.    [9]  Rekhter, Y. and Li, T. Editors, "A Border Gateway Protocol 4
  1883.         (BGP-4)", Work in Progress, September 1992.
  1884.  
  1885.    [10] ISO, "Information Processing Systems - Telecommunications and
  1886.         Information Exchange between Systems - Protocol for Exchange of
  1887.         Inter-domain Routeing Information among Intermediate Systems to
  1888.         Support Forwarding of ISO 8473 PDUs", ISO/IEC DIS 10747, August
  1889.         1992.
  1890.  
  1891.    [11] Perlman, R., "Network Layer Protocols with Byzantine Robust-
  1892.         ness", Ph.D. Thesis, Department of Electrical Engineering and
  1893.         Computer Science, MIT, August 1988.
  1894.  
  1895.    [12] Estrin, D. and Tsudik, G., "Secure Control of Transit Internet-
  1896.         work Traffic", TR-89-15, Computer Science Department, University
  1897.         of Southern California.
  1898.  
  1899.    [13] Garcia-Luna-Aceves, J.J., "A Unified Approach for Loop-Free
  1900.         Routing using Link States or Distance Vectors", ACM Computer
  1901.         Communication Review, Vol. 19, No. 4, SIGCOMM 1989, pp. 212-223.
  1902.  
  1903.  
  1904.  
  1905.  
  1906. Steenstrup                                                     [Page 34]
  1907.  
  1908. RFC 1478                   IDPR Architecture                   June 1993
  1909.  
  1910.  
  1911.    [14] Zaumen, W.T. and Garcia-Luna-Aceves, J.J., "Dynamics of Distri-
  1912.         buted Shortest-Path Routing Algorithms", ACM Computer Communica-
  1913.         tion Review, Vol. 21, No. 4, SIGCOMM 1991, pp. 31-42.
  1914.  
  1915. 6.  Security Considerations
  1916.  
  1917.         Refer to section 3.3 for details on security in IDPR.
  1918.  
  1919. 7.  Author's Address
  1920.  
  1921.         Martha Steenstrup
  1922.         BBN Systems and Technologies
  1923.         10 Moulton Street
  1924.         Cambridge, MA 02138
  1925.  
  1926.         Phone: (617) 873-3192
  1927.         Email: msteenst@bbn.com
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962. Steenstrup                                                     [Page 35]
  1963.  
  1964.